let arr = [{a:1},{b:2},{c:3}];
let proxy = new Proxy(arr, {
  get(target,key) {
    console.log("target:", target);
    console.log("key:", key);
    return Reflect.get(target,key)
  }
  , set(target,key,value) {
    // if(key === 'length') return true;
    console.log('update', key);
    return Reflect.set(target,key,value)
  }
});

proxy.forEach(console.log)
/*
target: [ { a: 1 }, { b: 2 }, { c: 3 } ]
key: forEach
target: [ { a: 1 }, { b: 2 }, { c: 3 } ]
key: length
target: [ { a: 1 }, { b: 2 }, { c: 3 } ]
key: 0
{ a: 1 } 0 [ { a: 1 }, { b: 2 }, { c: 3 } ]
target: [ { a: 1 }, { b: 2 }, { c: 3 } ]
key: 1
{ b: 2 } 1 [ { a: 1 }, { b: 2 }, { c: 3 } ]
target: [ { a: 1 }, { b: 2 }, { c: 3 } ]
key: 2
{ c: 3 } 2 [ { a: 1 }, { b: 2 }, { c: 3 } ]
*/
